package echecs;

import iechecs.IConstantes;
import iechecs.Nat;

public enum Direction implements IConstantes {

    Init,
    nord(_0, _1),
    nord_est(_1, _1),
    est(_1, _0),
    sud_est(_1, __1),
    sud(_0, __1),
    sud_ouest(__1, __1),
    ouest(__1, _0),
    nord_ouest(__1, _1),
    Fin,
    Cavalier,
    cav1(_1, _2), cav2(_2, _1), cav3(_2, __1), cav4(_1, __2), cav5(__1, __2), cav6(__2, __1), cav7(
    __2, _1),
    cav8(__1, _2),
    FinCavalier;
    private Nat u;
    private Nat v;

    private Direction() {
    }

    private Direction(Nat u, Nat v) {
        this.u = u;
        this.v = v;
    }

    public Direction next() {
        return values()[_1.add(ordinal())];
    }

    public Nat getU() {
        return u;
    }

    public Nat getV() {
        return v;
    }
}

